
#ifndef DSTIN_DRIVER_GLOBALS
#define DSTIN_DRIVER_GLOBALS
#include <includes.h>

/***********************************************************/
/****************** Digital Input define   *****************/
/***********************************************************/

static void RCC_DstInputsCfg(void);
static void GPIO_DstInputsCfg(void);

/* Initial Digital Inputs Config */
void DstInputsCfg_Init(void)
{
    /* Configure RCC clock ---------*/
    RCC_DstInputsCfg();

    /* Configure GPIO -------*/
    GPIO_DstInputsCfg();
}

/**
 * @brief  Configures RCC clock for InputsExt
 * @param  None
 * @retval None
 */
static void RCC_DstInputsCfg(void)
{
    uint8_t i;
    uint32_t RCC_APBxPeriph_GPIOx = 0;

    /* Enable RCC clocks */
    for (i = 0; i < DstInputsOrd_TOTNum; i++)
        RCC_APBxPeriph_GPIOx |= RelayOutCfgTable[i].RCC_APB2Periph;

    RCC_EnableAPB2PeriphClk(RCC_APBxPeriph_GPIOx, ENABLE);
}

/**
 * @brief  Configures InputsExt Control lines.
 * @param  None
 * @retval None
 */
static void GPIO_DstInputsCfg(void)
{
    GPIO_InitType GPIO_InitStructure;
    uint8_t i;

    /* Configuration Port for InputsExti pin */
    for (i = 0; i < DstInputsOrd_TOTNum; i++)
    {
        GPIO_InitStructure.Pin = DstInputsCfgTable[i].GPIO_Pin;
        GPIO_InitStructure.GPIO_Speed = DstInputsCfgTable[i].GPIO_Speed;
        GPIO_InitStructure.GPIO_Mode = DstInputsCfgTable[i].GPIO_Mode;
        GPIO_InitPeripheral(DstInputsCfgTable[i].GPIOx, &GPIO_InitStructure);
    }
}

/*$PAGE*/ #endif /*	DSTIN_DRIVER_GLOBALS	*/
